package com.barry.algorithm;

import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;

/**
 * 明明想在学校中请一些同学一起做一项问卷调查，为了实验的客观性，他先用计算机生成了N个1到1000之间的随机整数（N≤1000），
 * 对于其中重复的数字，只保留一个，把其余相同的数去掉，不同的数对应着不同的学生的学号。
 * 然后再把这些数从小到大排序，按照排好的顺序去找同学做调查。
 * 请你协助明明完成“去重”与“排序”的工作(同一个测试用例里可能会有多组数据，希望大家能正确处理)。
 *
 * Input Param
 * n               输入随机数的个数
 * inputArray      n个随机整数组成的数组
 *
 * Return Value
 * OutputArray    输出处理后的随机整数
 *
 * 注：测试用例保证输入参数的正确性，答题者无需验证。测试用例不止一组。
 *
 * 输入描述:
 * 输入多行，先输入随机整数的个数，再输入相应个数的整数
 *
 * 输出描述:
 * 返回多行，处理后的结果
 *
 * 输入例子1:
 * 11
 * 10
 * 20
 * 40
 * 32
 * 67
 * 40
 * 20
 * 89
 * 300
 * 400
 * 15
 *
 * 输出例子1:
 * 10
 * 15
 * 20
 * 32
 * 40
 * 67
 * 89
 * 300
 * 400
 */
public class Test1{
    public static int[] ifRepeat(int[] arr){
        //用来记录去除重复之后的数组长度和给临时数组作为下标索引
        int t = 0;
        //临时数组
        int[] tempArr = new int[arr.length];
        //遍历原数组
        for(int i = 0; i < arr.length; i++){
            //声明一个标记，并每次重置
            boolean isTrue = true;
            //内层循环将原数组的元素逐个对比
            for(int j=i+1;j<arr.length;j++){
                //如果发现有重复元素，改变标记状态并结束当次内层循环
                if(arr[i]==arr[j]){
                    isTrue = false;
                    break;
                }
            }
            //判断标记是否被改变，如果没被改变就是没有重复元素
            if(isTrue){
                //没有元素就将原数组的元素赋给临时数组
                tempArr[t] = arr[i];
                //走到这里证明当前元素没有重复，那么记录自增
                t++;
            }
        }
        //声明需要返回的数组，这个才是去重后的数组
        int[]  newArr = new int[t];
        //用arraycopy方法将刚才去重的数组拷贝到新数组并返回
        System.arraycopy(tempArr,0,newArr,0,t);
        return newArr;
    }

    public static int[] bubbleSort(int[] a){
        boolean flag = true;
        for(int i=0; i< a.length && flag; i++){
            flag = false;
            for(int j=0; j<a.length-i-1; j++){
                int temp = a[j];
                if(a[j]>a[j+1]){
                    a[j] = a[j+1];
                    a[j+1] = temp;
                    flag = true;
                }
            }
        }
        return a;
    }

    public static void main(String[] args){
        Scanner sc=new Scanner(System.in);
        int count = sc.nextInt();
        int i = 0;
        int[] a = new int[count];
        Set set = new HashSet();
        while(sc.hasNext()){
            int val = sc.nextInt();
            a[i] = val;
            if(set.contains(val)){
                a = ifRepeat(a);
            } else {
                set.add(val);
                ++i;
            }
            if(i == a.length){
                break;
            }
        }
        a = bubbleSort(a);
        for(int k =0; k< a.length; k++){
            System.out.println(a[k]);
        }
    }
}
